网工Python之路之paramiko 模块实验(四)分组操作
【文末赠书】
感谢知乎两位大佬:@弈心和@朱嘉盛
@弈心大佬的实验主要是基于 linux 系统、思科设备或 GNS3 模拟器完成。
@朱嘉盛大佬考虑到当前在国内华为较为主流,也用 Windows 系统,尝试用华为的真机或者 eNSP 模拟器,把书中提及的实验做一做,方便大家学习记录,方便交流。
小编这里采用eve-ng+ensp+liunx来模拟实践本次实验效果,参考于@朱嘉盛大佬的文章。
实验平台:Linux Centos7+python3.6.8
使用工具:EVE-ng、Ensp
实验拓扑:
实验目的:
1.
192.168.11.11、192.168.11.12归类为组1,模拟思科交换机:进入 vlan 1 ,执行 description Python_G1。
2.
192.168.11.14、192.168.11.15归类为组2,模拟华为交换机:进入 vlanif 1 ,执行 description Python_G2。
准备条件:
在paramiko4.py文件同目录下,建立各组的 IP 清单列表及执行命令,如下图所示。
实验前检查
按之前实验套路,逐一检查 PC 到 LSW X的网络连通性,如不通需要排网络,本文此处描述从简。2. 检查各组每台交换机的 vlanif 是否有描述信息,实验前应如下图,如有冗余配置可手工删除掉。(做了前面几个实验的童鞋,这里的“查”“删”操作已经可以写几行代码就能实现自动化了,不妨一试。)
更多精彩内容关注“释然IT杂谈”
Python 代码
代码讲解,大神在书里和专栏中已逐条做了解释
import paramiko
import time
import getpass
import sys
username = input("Username: ")
password = getpass.getpass("Password: ")
ip_file = sys.argv[1]
cmd_file = sys.argv[2]
iplist = open(ip_file,'r')
for line in iplist.readlines():
ip = line.strip()
ssh_client = paramiko.SSHClient()
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh_client.connect(hostname=ip,username=username,
password=password,look_for_keys=False)
print('=-=-=-=-=-=-=-=-=-=-=-=-=-=')
print('已经成功登陆交换机 ' + ip)
command = ssh_client.invoke_shell()
cmdlist = open(cmd_file,'r')
cmdlist.seek(0)
for line in cmdlist.readlines():
each_command = line.strip()
command.send(each_command + '\n')
time.sleep(0.5)
cmdlist.close()
output = command.recv(65535).decode('ASCII')
print(output)
ssh_client.close()
执行脚本文件:
实验结果检测
查看各设备vlan1下描述信息。
实验小结
网工Python之路之paramiko 模块实验(三)读取文件
网工Python之路之paramiko 模块实验(二)循环遍历
网工Python之路之paramiko 模块实验(一)初来乍到
可去知乎关注两位大佬:
https://www.zhihu.com/column/c_1357111055186104320
https://zhuanlan.zhihu.com/p/34932386
需开奖前转发此文案到朋友圈,开奖前不得删文,开奖后24小时内联系小编,过期不候。